Universal Serial Bus (USB) is a widely used serial bus standard used to interface devices. USB was originally designed for computers as a plug-and-play interface between a computer and add-on devices such as, for example, audio players, joysticks, keyboards, digital cameras, scanners and printers, etc. However, the popularity of USB has prompted it to also become commonplace on other devices such as, for example, video game consoles, portable digital assistants (PDAs), portable digital video disk (DVD) and media players, cell phones, televisions (TVs), home stereo equipment such as MP3 players, car stereos, and portable memory devices. USB can be used to connect peripherals such as mouse devices, keyboards, gamepads, joysticks, scanners, digital cameras, printers, external storage, networking components, and many other devices.
As discussed above, USB is a serial bus standard to interface devices. USB is designed to allow many peripherals to be connected using a single standardized interface socket and to improve plug-and-play capabilities by allowing devices to be connected and disconnected without rebooting the computer. USB also provides power to low consumption devices eliminating the need for an external power supply. Common class drivers included with the operating system generally remove the need to install device drivers.
The USB 1.0 specification is an external bus standard introduced in November 1995 that supports data transfer rates of 12 Mbps (Megabits per second). Starting in 1996, a few computer manufacturers began including USB support in their new machines, and it became widespread by 1998 when as evidenced by its use as the primary connector on the original Apple iMac. The USB connector was used to replace PS2, serial and parallel ports. USB 2.0, which supports Low-speed, Full-speed, and High-speed USB implementations, is an external bus that supports data rates up to 480 Mbps. USB 2.0 is fully backwards compatible with USB 1.0, and uses the same cables and connectors. The USB 2.0 specification was released in April 2000.
The USB 3.0 specification was released in November 2008. It defines SuperSpeed USB at a data rate of 5 Gbps (Gigabits per second). Therefore, USB 3.0 provides bus speeds ten times faster than USB 2.0.
Peer to peer connections between USB hosts (for example, for USB1 and/or USB 2.0 applications) may be accomplished by using a special host to host cable. The special host to host cable includes a considerable amount of electronic hardware, and is really two Ethernet USB devices, each connected to a host. The Ethernet USB devices are connected together via an Ethernet cable. In this manner, the special host to host cable includes a directly connected pair of back to back USB Ethernet network controllers. However, such a solution requires proprietary driver and application level software to be installed at both ends of the connection, imposing significant throughput limitations due to the overhead of USB packet and Internet Protocol (IP) packet processing software stacks at both ends of the data transfer. For example, a typical 100 Mb/sec Ethernet Network Interface Card (NIC) can achieve roughly 50 Mb/sec due to transport inefficiencies and IP packet processing software overhead. Further, USB packet processing overhead causes additional impact, resulting in a performance that is a constrained solution (for example, a constrained USB 2.0 solution). Therefore, a need has arisen for a better peer to peer USB connection solution.